home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…stman Always Clicks Twice / ADC Developer CD (1993-01) (''The Postman Always Clicks Twice'')_iso / Dev.CD 199301.iso / Tools & Apps / Networking & Communications / Network Watch (DMZ) 1.0 / dmz.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-17  |  8.9 KB  |  396 lines  |  [TEXT/KAHL]

  1. /*
  2.  *    dmz.h
  3.  *    
  4.  *    2/15/90    pvh    - first wrote this.  about freakin time...
  5.  *
  6.  */
  7.  
  8. #ifndef THINK_C
  9.  
  10. #include    <types.h>
  11. #include    <quickdraw.h>
  12. #include    <toolutils.h>
  13. #include    <fonts.h>
  14. #include    <events.h>
  15. #include    <windows.h>
  16. #include    <dialogs.h>
  17. #include    <menus.h>
  18. #include    <desk.h>
  19. #include    <textedit.h>
  20. #include    <scrap.h>
  21. #include    <segload.h>
  22. #include    <osevents.h>
  23. #include    <files.h>
  24. #include    <devices.h>
  25. #include    <memory.h>
  26. #include    <appletalk.h>
  27. #include    <lists.h>
  28. #include    <errors.h>
  29. #include    <OSUtils.h>
  30.  
  31. #else
  32. #include    <Appletalk.h>
  33.  
  34. #endif
  35.  
  36.  /*     
  37.  *    Structure necessary for MultiFinder compatibility.  Our own layer's A5
  38.  *    must be saved so globals can be used by the _PLookupName completion routine.
  39.  */
  40. typedef struct myMPPParamBlock {
  41.     long                 myA5;
  42.     MPPParamBlock         myMPP;    
  43.     } myMPPParamBlock;
  44.     
  45. /* 
  46.  *    This is the structure that defines the "look" of our lists.  It includes
  47.  *    the object name, type, net, node & socket
  48.  */
  49. typedef struct myNetworkEntity {
  50.     char object[33];    
  51.     char type[33];    
  52.     char net[6];
  53.     char node[4];
  54.     char socket[4];
  55.     } myNetworkEntity;
  56.  
  57. /* 
  58.  *    A few char codes…
  59.  */
  60. #define kEnterKey    (char)3
  61. #define kReturnKey    (char)13
  62.  
  63. /* 
  64.   *    HiliteMode low memory global.  We clear a bit at this address for using HiliteRGB
  65.   *    when inverting in our LDEF & when selecting items.
  66.   */
  67. #define HiliteModePtr    0x938
  68.  
  69. /* 
  70.   *    Offsets of the structure.  Used for the quicksort().
  71.   */
  72. #define myNetworkEntityObject    0 
  73. #define myNetworkEntityType     33+myNetworkEntityObject
  74. #define myNetworkEntityNet         33+myNetworkEntityType
  75. #define myNetworkEntityNode        6+myNetworkEntityNet
  76. #define myNetworkEntitySocket     4+myNetworkEntityNode
  77.  
  78. /* 
  79.  *    Justification constants for our list views.
  80.  */
  81. #define leftJust     1
  82. #define rightJust     2
  83.  
  84.  /* 
  85.   *    various stuff needed for AppleTalk bridging 
  86.   */
  87. #define sysABridge             0x19
  88. #define ABusVars             0x000002D8
  89. #define kBridgeSocket         0x6
  90. #define systemNetwork         0x1A
  91.  
  92.  /* 
  93.   *    other defines 
  94.   */
  95. #define kMachineNameResourceID    -16096
  96. #define    ddpMaxData                586
  97. #define kNumBuffers                2
  98.  
  99. #ifndef THINK_C
  100. #define nil    0L
  101. #endif
  102.  
  103. /* 
  104.  *    calls for pre-Phase2 AppleTalk 
  105.  *    (already defined in LSC)
  106.  */
  107. #ifndef _GetZoneList         
  108. #define _GetZoneList    8
  109. #endif
  110.  
  111. #ifndef _GetLocalZone         
  112. #define _GetLocalZone    7
  113. #endif
  114.  
  115. #define entryLengths     20                /*  33 standard entityData length */
  116.  
  117. #define suspendResumeEvt     15
  118.  
  119. /*
  120.  *    Resource ID constants.
  121.  */
  122.  
  123. /*
  124.  *    Resource ID constants for string list items.
  125.  */
  126. #define kZoneStrID        1
  127. #define kObjectStrID    2
  128. #define kTypeStrID        3
  129. #define kNetStrID        4
  130. #define kNodeStrID        5
  131. #define kSktStrID        6
  132.  
  133. #define    kStringListID     128                /* ID for our string list resource */
  134.  
  135.  
  136. #define    appleID            128             /* This is a resource ID */
  137. #define    fileID             129             /* ditto */
  138. #define    editID             130             /* ditto */
  139.  
  140. #define    appleMenu        0                /* MyMenus[] array indexes */
  141. #define    aboutMeCommand    1
  142.  
  143. #define    fileMenu        1
  144. #define    lookupCommand     1
  145. #define    quitCommand     2
  146.  
  147. #define    editMenu        2
  148. #define cutCommand        3
  149. #define copyCommand        4
  150. #define pasteCommand    5
  151. #define clearCommand    6
  152. /*#define clearCommand    5*/
  153.  
  154. /* for sort child menu */
  155. #define objectItem            1
  156. #define typeItem            2
  157. #define netItem                3
  158. #define nodeItem                4
  159. #define socketItem            5
  160.  
  161. /*
  162.  * For the About Sample... DLOG
  163.  */
  164. #define    aboutMeDLOG        128
  165. #define    okButton                1
  166. #define    authorItem            2            /* For SetIText */
  167. #define    languageItem            3            /* For SetIText */
  168.  
  169. /*
  170.  *    constants for main dialog 
  171.  */
  172. #define kMainDialogID    129
  173.  
  174. #define kZoneListID            1
  175. #define kNameTypeListID        2
  176. #define kZoneItemID            4
  177. #define kTypeID                5
  178. #define kObjectID            6
  179. #define kObjectCountID        7
  180. #define kProgressID            8
  181. #define kNetID                9
  182. #define kNodeID                10
  183. #define kSocketID            11
  184. #define kDoLookupID            12
  185.  
  186. /*
  187.  *    constants for lookup dialog 
  188.  */
  189. #define kLookupDialogID    130
  190. #define kIntervalItem     3
  191. #define kCountItem         4
  192. #define kPhase2Item     5
  193. #define kObjectItem     8
  194. #define kTypeItem         9
  195.  
  196.  
  197. #define    osEvent                    app4Evt    /* event used by MultiFinder */
  198. #define    resumeMask                1        /* bit of message field for resume vs. suspend */
  199. #define    sysEnvironsVersion        1
  200.  
  201. /* 
  202.  *    quicksort "mode" constants 
  203.  */
  204. #define sortOnZoneName     1
  205. #define sortOnObject     1
  206. #define sortOnType         31
  207. #define sortOnNet         62
  208. #define sortOnNode         68
  209. #define sortOnSocket     72
  210.     
  211. /* 
  212.  *    constants for window activation 
  213.  */
  214. #define kActivateWindow        1
  215. #define kDeactivateWindow    0
  216.  
  217. /* 
  218.  *    low memory global for hilite RGB setting 
  219.  */
  220. #define HiliteRGB 0xDA0
  221.  
  222.  
  223. #define zoneNameSize     33
  224.  
  225.  
  226. /* 
  227.  *    AppleTalk Phase 2 calls 
  228.  */
  229.  
  230. /* 
  231.  *    csCodes for new .XPP driver calls
  232.  */
  233. #ifndef xCall
  234. #define    xCall                246
  235. #endif
  236.  
  237. /* 
  238.  *    xppSubCodes 
  239.  */
  240. #ifndef zipGetLocalZones
  241. #define zipGetLocalZones     5
  242. #endif
  243. #ifndef zipGetZoneList
  244. #define zipGetZoneList        6
  245. #endif
  246. #ifndef zipGetMyZone
  247. #define zipGetMyZone         7
  248. #endif
  249.  
  250. /*  
  251.  *    offsets for xCall queue elements  
  252.  *
  253.  
  254. if this isn't defined in your interfaces, here it be.
  255.  
  256. typedef struct 
  257.     {
  258.     QElemPtr        qLink;
  259.     short            qType;
  260.     short            ioTrap;
  261.     Ptr                ioCmdAddr;
  262.     ProcPtr            ioCompletion;
  263.     OSErr            ioResult;
  264.     StringPtr        ioNamePtr;
  265.     short            ioVRefNum;
  266.     short            ioRefNum;
  267.     short            csCode;
  268.     short            xppSubcode;
  269.     unsigned char    xppTimeout;
  270.     unsigned char    xppRetry;
  271.     short            filler;
  272.     Ptr                zipBuffPtr;
  273.     short            zipNumZones;
  274.     short            zipLastFlag;
  275.     unsigned char    zipInfoField[70];
  276. } XCallParam;
  277. */
  278.  
  279. /* 
  280.  *    mpp csCodes 
  281.  */
  282. #define getAppleTalkInfo     258
  283.  
  284. /*  
  285.  *    offsets for GetAppleTalkInfo queue element
  286.  */
  287. typedef struct
  288.     {
  289.     QElemPtr        qLink;
  290.     short            qType;
  291.     short            ioTrap;
  292.     Ptr                ioCmdAddr;
  293.     ProcPtr            ioCompletion;
  294.     OSErr            ioResult;
  295.     StringPtr        ioNamePtr;
  296.     short            ioVRefNum;
  297.     short            ioRefNum;
  298.     short            csCode;
  299.     short            version;
  300.     Ptr                varsPtr;
  301.     Ptr                DCEPtr;
  302.     short            PortID;
  303.     long            configuration;
  304.     short        selfSend;
  305.     short            netLo;
  306.     short            netHi;
  307.     long            ourAddr;
  308.     long            routerAddr;
  309.     short            numOfPHs;
  310.     short            numOfSkts;
  311.     short            numOfNBPEs;
  312.     Ptr                ntQueue;
  313.     short            LALength;
  314.     Ptr                linkAddr;
  315.     Ptr                zoneName;
  316. } getAppleTalkInfoParam;
  317.  
  318. /*  
  319.  *    offsets for packet buffers to be used by socket listener
  320.  */
  321. typedef struct {
  322.         QElemPtr    qLink;
  323.         short        qType;
  324.         short        buffer_type;            /* DDP Type */
  325.         short        buffer_NodeID;            /* Destination Node */
  326.         AddrBlock    buffer_Address;            /* Source Address in AddrBlock format */
  327.         short        buffer_Hops;            /* Hop count */
  328.         short        buffer_ActCount;        /* length of DDP datagram */
  329.         OSErr        buffer_CheckSum;        /* Checksum returned here */
  330.         long        buffer_Ticks;            /* Timestamp of processing by socket listener */
  331.         char        buffer_Data[ddpMaxData]; /* the DDP datagram */
  332. } PacketBuffer;
  333.  
  334. typedef PacketBuffer *PacketPtr;
  335.  
  336. /*
  337.  *    The following stuff is implemented for the AppleTalk Transition Queue 
  338.  */
  339.  
  340. #define ATTransOpen                    0        /* .MPP just opened */
  341. #define ATTransClose                2        /* .MPP is closing */
  342. #define ATTransClosePrep            3        /* OK for .MPP to close? */
  343. #define ATTransCancelClose            4        /* .MPP close was canceled */
  344. #define ATTransNetworkTransition    5        /* .MPP Network ADEV transition */
  345. #define ATTransNameChangeTellTask    6        /* Flagship name is changing */
  346. #define ATTransNameChangeAskTask    7        /* OK to change Flagship name */
  347. #define ATTransCancelNameChange        8        /* Flagship name change was canceled */
  348. #define ATTransCableChange            'rnge'    /* Cable Range Change has occurred */
  349. #define ATTransSpeedChange            'sped'    /* Change in processor speed has occurred */
  350.  
  351. /*----------------------------------------------------------------------
  352.         NBP Name Change Info record
  353. ----------------------------------------------------------------------*/
  354. typedef struct NameChangeInfo {
  355.     Str32     newObjStr;    /* new NBP name */
  356.     Ptr    name;            /* Ptr to location to place a pointer to Pascal string of */
  357.                             /* name of process that NAK'd the event */
  358. }
  359.     NameChangeInfo, *NameChangePtr, **NameChangeHdl;
  360.  
  361. /*----------------------------------------------------------------------
  362.         Network Transition Info Record
  363. ----------------------------------------------------------------------*/
  364.  
  365. typedef struct TNetworkTransition {
  366.     Ptr        private;            /* pointer to private structure */
  367.     ProcPtr    netValidProc;        /* pointer to network validation procedure */
  368.     Boolean     newConnectivity;    /* true = new connection */
  369.                                      /* false = loss of connection */
  370.  
  371. }
  372.     TNetworkTransition , *TNetworkTransitionPtr, **TNetworkTransitionHdl;
  373.  
  374. typedef    pascal long    (*NetworkTransitionProcPtr)(TNetworkTransitionPtr netTrans, \
  375.                       unsigned long theNet);
  376.  
  377. /*----------------------------------------------------------------------
  378.         Cable Range Transition Info Record
  379. ----------------------------------------------------------------------*/
  380. typedef struct TNewCRTrans {
  381.     short    newCableLo;    /* the new Cable Lo received from RTMP */
  382.     short    newCableHi;    /* the new Cable Hi received from RTMP */
  383. }
  384.     TNewCRTrans , *TNewCRTransPtr, **TNewCRTransHdl;
  385.  
  386. /*----------------------------------------------------------------------
  387.         AppleTalk Transition Queue Element
  388. ----------------------------------------------------------------------*/
  389. typedef struct    myATQEntry {
  390.     Ptr        qLink;        /* -> next queue element */
  391.     short    qType;        /* unused */
  392.     ProcPtr    CallAddr;    /* -> transition procedure */
  393.     Ptr        globs;        /* -> to user defined globals */
  394. }
  395.     myATQEntry, *myATQEntryPtr, **myATQEntryHdl;
  396.